
import request from '../../utils/request'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    phone: '15179716321',
    password: 'moran123'
  },
  /* 
  1、收集数据，将输入的值保存下来
  2、对手机号进行校验，格式以及不能为空
  3、对密码进行校验，格式以及不能为空
  4、发送请求登录，将返回的值保存在本地

  
  */
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },
  // 保存输入框的值
  handleInput(event) {
    // 通过自定义属性拿到key值
    const type = event.currentTarget.dataset.type
    const value = event.detail.value
    this.setData({
      [type]: value
    })
  },
  // 登录
  async SignIn() {
    let { phone, password } = this.data;
    phone = phone.trim();
    password = password.trim();
    let result
    // 手机号密码必填，校验手机号格式
    if (!phone) {
      wx.showToast({
        title: '手机号不能为空',
        icon: "none"
      })
      return
    }
    if (!/^1(3|4|5|6|7|8|9)\d{9}$/.test(phone)) {
      wx.showToast({
        title: '手机号格式不正确',
        icon: "none"
      })
      return
    }
    if (!password) {
      wx.showToast({
        title: '密码不能为空',
        icon: "none"
      })
      return
    }
    // 接口有问题，这里使用假登录
    if (phone === "15179716321" && password === "moran123") {
      result = {
        code: 200,
        profile: {
          accountStatus: 0,
          authStatus: 0,
          authority: 0,
          avatarDetail: null,
          avatarImgId: 1410673435451141,
          avatarImgIdStr: "1410673435451141",
          avatarUrl: "https://p1.music.126.net/sfC0WIwWh7hKLRJ8qkLqYQ==/1410673435451141.jpg",
          backgroundImgId: 109951163518363380,
          backgroundImgIdStr: "109951163518363378",
          backgroundUrl: "https://p1.music.126.net/WPwET_qY0OnSqKL_3v90Yw==/109951163518363378.jpg",
          birthday: 863884800000,
          city: 360700,
          defaultAvatar: false,
          description: "",
          detailDescription: "",
          djStatus: 0,
          eventCount: 3,
          expertTags: null,
          experts: {},
          followed: false,
          followeds: 7,
          follows: 17,
          gender: 1,
          mutual: false,
          nickname: "好爸爸和狗时时",
          playlistBeSubscribedCount: 2,
          playlistCount: 10,
          province: 360000,
          remarkName: null,
          signature: "",
          userId: 75543868,
          userType: 0,
          vipType: 0,
          token: "465a9335a4fc540442fdacc247f73293c29bb3340d73fa4a2f55203ad13740491e8907c67206e1edae1bdda0473178eb9a9dbd7776ae3e563aa0f1590ccac8b21c2e9e0a195af7391b93ac14e0ed86ab"
        }
      }
    } else if (phone === "15179716321" && password !== "moran123") {
      result = {
        code: 502,
        message: "密码错误"
      }
    }
    const code = result.code;
    const fun = function () {
      wx.showToast({
        title: '密码不正确请重新输入',
        icon: 'none'
      })
      return
    }
    /* 
    状态码:
            200->代表登录成功
            400->代表帐号格式错误
            501->代表帐号不存在
            502->代表密码错误
            
    策略模式：
        创建了一个对象,该对象的属性名是可能出现的状态码
        属性值是该状态码下,需要执行的代码
        策略模式最经典的使用位置就是Vue中的生命周期钩子函数
            */
    const codeFn = {
      200() {
        // 成功之后，跳转页面，将profile存储到Storage，将cookie也存进去
        wx.showToast({
          title: '登录成功即将跳转',
          icon: 'none'
        })
        // switchTab专门用于跳转tabBar页面的API，会关闭其他页面，有清空页面栈的作用
        wx.switchTab({
          url: "/pages/personal/personal"
        })
        // 将profile存储到Storage,登录成功之后根据里面的数据渲染用户信息
        wx.setStorage({
          key: 'userInfo',
          data: result.profile
        })

        // 将cookie存储到本地
        wx.setStorageSync('cookie', "MUSIC_U=465a9335a4fc540442fdacc247f73293c29bb3340d73fa4a32256302e2dc8d131e8907c67206e1edc3d6d1f85e05ff9b0b504180123d9d923aa0f1590ccac8b21c2e9e0a195af7391b93ac14e0ed86ab; Max-Age=1296000; Expires=Thu, 08 Sep 2022 07:52:43 GMT; Path=/; Domain=.music.163.com; HTTPOnly")

        return
      },
      400() {
        wx.showToast({
          title: '账号格式错误，请重新检查',
          icon: 'none'
        })
        return
      },
      501() {
        wx.showToast({
          title: '账号不存在',
          icon: 'none'
        })
        return
      },
      502: fun,
      503: fun
    }

    codeFn[code] && codeFn[code]();
  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})